/**
 * 工具函数集合
 */

/**
 * 格式化日期时间
 * @param {String|Number|Date} timestamp - 日期时间戳，可以是字符串、数字或Date对象
 * @param {Boolean} showTime - 是否显示时间，默认显示
 * @returns {String} - 格式化后的日期字符串
 */
export function formatDate(timestamp, showTime = true) {
  if (!timestamp) {
    return '未记录';
  }
  
  let date;
  try {
    // 处理不同类型的时间戳输入
    if (timestamp instanceof Date) {
      date = timestamp;
    } else if (typeof timestamp === 'string') {
      date = new Date(timestamp);
    } else if (typeof timestamp === 'number') {
      date = new Date(timestamp);
    } else {
      return '无效日期';
    }

    // 检查日期是否有效
    if (isNaN(date.getTime())) {
      return '无效日期';
    }

    // 格式化日期
    const options = { 
      year: 'numeric', 
      month: '2-digit', 
      day: '2-digit',
    };
    
    if (showTime) {
      options.hour = '2-digit';
      options.minute = '2-digit';
      options.second = '2-digit';
      options.hour12 = false;
    }
    
    // 使用中文本地化格式
    let formattedDate = date.toLocaleDateString('zh-CN', options);
    
    // 替换斜杠为连字符
    formattedDate = formattedDate.replace(/\//g, '-');
    
    return formattedDate;
  } catch (error) {
    console.error('日期格式化错误:', error);
    return '无效日期';
  }
}

/**
 * 获取项目状态显示文本
 * @param {Object} project - 项目对象
 * @returns {Object} - 状态对象，包含文本和样式类
 */
export function getProjectStatus(project) {
  if (!project) {
    return { text: '未知', class: 'status-unknown' };
  }
  
  if (project.isDeleted) {
    return { text: '已删除', class: 'status-deleted' };
  }
  
  if (project.isCompleted) {
    return { text: '已完成', class: 'status-completed' };
  }
  
  // 根据状态码判断
  if (typeof project.status === 'number') {
    switch (project.status) {
      case 0:
        return { text: '进行中', class: 'status-active' };
      case 1:
        return { text: '审核中', class: 'status-review' };
      case 2:
        return { text: '已完成', class: 'status-completed' };
      case 3:
        return { text: '已删除', class: 'status-deleted' };
      default:
        return { text: '进行中', class: 'status-active' };
    }
  }
  
  // 默认为进行中
  return { text: '进行中', class: 'status-active' };
}

/**
 * 获取研究人员信息的显示文本
 * @param {Object} researcherInfo - 研究人员信息对象
 * @returns {String} - 格式化的研究人员信息
 */
export function formatResearcherInfo(researcherInfo) {
  if (!researcherInfo) {
    return '未提供';
  }
  
  if (typeof researcherInfo === 'string') {
    return researcherInfo;
  }
  
  const { name, affiliation, contact } = researcherInfo;
  
  let result = '';
  if (name) result += `${name}`;
  if (affiliation) result += result ? ` | ${affiliation}` : affiliation;
  if (contact) result += result ? ` | ${contact}` : contact;
  
  return result || '未提供详细信息';
} 